home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / lib / rhythmbox / plugins / lyrics / LyricsConfigureDialog.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-04-20  |  4.3 KB  |  111 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import gobject
  5. import gtk
  6. import gtk.glade as gtk
  7. import gconf
  8. from os import system, path
  9.  
  10. class LyricsConfigureDialog(object):
  11.     
  12.     def __init__(self, glade_file, gconf_keys):
  13.         self.gconf = gconf.client_get_default()
  14.         self.gconf_keys = gconf_keys
  15.         self.gladexml = gtk.glade.XML(glade_file)
  16.         self.dialog = self.gladexml.get_widget('preferences_dialog')
  17.         self.toggle1 = self.gladexml.get_widget('engine1')
  18.         self.toggle2 = self.gladexml.get_widget('engine2')
  19.         self.toggle3 = self.gladexml.get_widget('engine3')
  20.         self.toggle4 = self.gladexml.get_widget('engine4')
  21.         self.toggle5 = self.gladexml.get_widget('engine5')
  22.         self.choose_button = self.gladexml.get_widget('choose_button')
  23.         self.path_display = self.gladexml.get_widget('path_display')
  24.         self.choose_button.connect('clicked', self.choose_callback)
  25.         self.dialog.connect('response', self.dialog_response)
  26.         (engines, self.folder) = self.get_prefs()
  27.         if self.folder is None:
  28.             self.folder = '~/.lyrics'
  29.         
  30.         self.path_display.set_text(self.folder)
  31.         self.toggle1.set_active('astraweb.com' in engines)
  32.         self.toggle2.set_active('lyrc.com.ar' in engines)
  33.         self.toggle3.set_active('leoslyrics.com' in engines)
  34.         self.toggle4.set_active('lyricwiki.org' in engines)
  35.         self.toggle5.set_active('winampcn.com' in engines)
  36.  
  37.     
  38.     def dialog_response(self, dialog, response):
  39.         if response == gtk.RESPONSE_OK:
  40.             self.set_values()
  41.             self.dialog.hide()
  42.         elif response == gtk.RESPONSE_CANCEL or response == gtk.RESPONSE_DELETE_EVENT:
  43.             self.dialog.hide()
  44.         else:
  45.             print 'unexpected response type'
  46.  
  47.     
  48.     def set_values(self):
  49.         engines = []
  50.         if self.toggle1.get_active():
  51.             engines.append('astraweb.com')
  52.         
  53.         if self.toggle2.get_active():
  54.             engines.append('lyrc.com.ar')
  55.         
  56.         if self.toggle3.get_active():
  57.             engines.append('leoslyrics.com')
  58.         
  59.         if self.toggle4.get_active():
  60.             engines.append('lyricwiki.org')
  61.         
  62.         if self.toggle5.get_active():
  63.             engines.append('winampcn.com')
  64.         
  65.         if len(self.path_display.get_text()) is not 0:
  66.             self.folder = self.path_display.get_text()
  67.         
  68.         self.gconf.set_list(self.gconf_keys['engines'], gconf.VALUE_STRING, engines)
  69.         self.gconf.set_string(self.gconf_keys['folder'], self.folder)
  70.  
  71.     
  72.     def choose_callback(self, widget):
  73.         
  74.         def response_handler(widget, response):
  75.             if response == gtk.RESPONSE_OK:
  76.                 path = self.chooser.get_filename()
  77.                 self.chooser.destroy()
  78.                 self.path_display.set_text(path)
  79.             else:
  80.                 self.chooser.destroy()
  81.  
  82.         buttons = (gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE, gtk.STOCK_OK, gtk.RESPONSE_OK)
  83.         self.chooser = gtk.FileChooserDialog(title = _('Choose lyrics folder...'), parent = None, action = gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER, buttons = buttons)
  84.         self.chooser.connect('response', response_handler)
  85.         self.chooser.set_modal(True)
  86.         self.chooser.set_transient_for(self.dialog)
  87.         self.chooser.present()
  88.  
  89.     
  90.     def get_dialog(self):
  91.         return self.dialog
  92.  
  93.     
  94.     def get_prefs(self):
  95.         
  96.         try:
  97.             engines = gconf.client_get_default().get_list(self.gconf_keys['engines'], gconf.VALUE_STRING)
  98.             if engines is None:
  99.                 engines = []
  100.         except gobject.GError:
  101.             e = None
  102.             print e
  103.             engines = []
  104.  
  105.         folder = gconf.client_get_default().get_string(self.gconf_keys['folder'])
  106.         print 'lyric engines: ' + str(engines)
  107.         print 'lyric folder: ' + folder
  108.         return (engines, folder)
  109.  
  110.  
  111.